/**
 * 去除字符串首尾空格
 * @param {string} str - 输入字符串
 * @returns {string} 处理后的字符串
 */
export function trim(str) {
  if (typeof str !== 'string') {
    return '';
  }
  return str.trim();
}

/**
 * 首字母大写
 * @param {string} str - 输入字符串
 * @returns {string} 处理后的字符串
 */
export function capitalize(str) {
  if (typeof str !== 'string' || str.length === 0) {
    return '';
  }
  return str.charAt(0).toUpperCase() + str.slice(1);
}

/**
 * 字符串脱敏处理
 * @param {string} str - 输入字符串
 * @param {number} startLen - 保留开始长度
 * @param {number} endLen - 保留结束长度
 * @param {string} replaceChar - 替换字符
 * @returns {string} 脱敏后的字符串
 */
export function maskStr(str, startLen = 3, endLen = 4, replaceChar = '*') {
  if (typeof str !== 'string' || str.length === 0) {
    return '';
  }
  
  const len = str.length;
  if (startLen + endLen >= len) {
    return str;
  }
  
  const maskLen = len - startLen - endLen;
  const mask = replaceChar.repeat(maskLen);
  
  return str.substring(0, startLen) + mask + str.substring(len - endLen);
}

/**
 * 判断字符串是否为邮箱格式
 * @param {string} str - 输入字符串
 * @returns {boolean} 是否为邮箱
 */
export function isEmail(str) {
  if (typeof str !== 'string') {
    return false;
  }
  const reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
  return reg.test(str);
}

/**
 * 判断字符串是否为手机号格式
 * @param {string} str - 输入字符串
 * @returns {boolean} 是否为手机号
 */
export function isPhone(str) {
  if (typeof str !== 'string') {
    return false;
  }
  const reg = /^1[3-9]\d{9}$/;
  return reg.test(str);
}
